package javabook.ch06;
/*

	<< 오버로딩(overloading) >>
	같은 클래스 내에 같은 이름의 생성자나 메소드를 사용하는 행위
	매개변수의 개수와 타입이 달라야 한다
	<< 오버라이딩(overriding) >>
	상속관계에 있는 클래스들간에 같은 이름의 메소드를 정의하는 행위
	기존 클래스의 메소드 구현 부분만 약간 변화시켜 새로운 클래스를 생성할 수 있다
	매개변수의 개수와 타입이 같아야 한다
	 >> 오버로딩과 오버라이딩은 객체지향 언어의 주요 개념인 다형성(polymorphism)을 구현한다

 */
class A1 {
  int i; 
  int j; 
  void setij(int x, int y) {
    i = x;
    j = y;
  }
}
class SumOb extends A1 {
  int total;

  void sum() {
    total = i + j; 
  }
}  

class Inheritence4 {
  public static void main(String args[]) {
	  SumOb subOb1 = new SumOb();

	    subOb1.setij(10, 12);  // 클래스 A로부터 상속된 메소드
	    subOb1.sum();          // 클래스 B의 메소드
	    System.out.println("두수의 합계는 : " + subOb1.total);
    
  }
  
}
